package com.jml.生命周期003.processor.entity002;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.stereotype.Component;

//BeanPostProcessor,实现了这个接口就是为所有的Bean初始化前和初始化后都会执行这个这些方法，不是针对某一个bean

@Component
public class MyBeanPostProcessor implements BeanPostProcessor {

    //BeanPostProcessor 后置处理器 对我们bean的对象实现增强
    // 执行自定义init方法之前处理
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("4.BeanPostProcessor 执行init方法之前处理 : " + beanName);
        return bean;
    }

    // 执行自定义init方法之后处理
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("6.BeanPostProcessor 执行init方法之后处理 :" + beanName);
        return bean;
    }
}
